package 字符串;

import java.util.Scanner;
//给定一个现在看到的密码串，计算一下从当初的状态，它要至少脱落多少个种子，才可能会变成现在的样子。
//
//        输入一行，表示现在看到的密码串（长度不大于1000）
//        要求输出一个正整数，表示至少脱落了多少个种子。
//
//        例如，输入：
//        ABCBA
//        则程序应该输出：
//        0
//
//        再例如，输入：
//        ABDCDCBABC
//        则程序应该输出：
//        3

public class 密码脱落 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        //StringBuilder a = new StringBuilder(scanner.next());
        String a = scanner.next();
        String b = new StringBuilder(a).reverse().toString();
        System.out.println(a.length()-findLCS(a,a.length(),b,b.length()));

    }
    static int findLCS(String a ,int n,String b,int m){
        int[][] dp = new int[n+1][m+1];
        for (int i = 0; i < n+1; i++) {
            for (int j = 0; j < m+1; j++) {
                dp[i][j] = 0;
            }
        }
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= m; j++) {
                if (a.charAt(i-1)==b.charAt(j-1)){
                    dp[i][j] = dp[i-1][j-1] +1;
                }else {
                    dp[i][j] = Math.max(dp[i-1][j],dp[i][j-1]);
                }
            }
        }
        return dp[n][m];
    }
}
